package com.utils.common;

import java.lang.reflect.Field;
import java.util.List;

/**
 * @author duoduo
 * @version 1.0.0
 * @date Created in 2020/06/09
 * @description 工具类
 */

public class ObjectUtil {
    /**
     * 判断对象的所有属性是否为空
     * @param object
     * @param exclField 排除的字段
     * @return
     */
    public static boolean fieldsIsNull(Object object, List<String> exclField){
        boolean flag = true;
        for (Field f : object.getClass().getDeclaredFields()) {
            f.setAccessible(true);
            try {
                String name = f.getName();
                // 判断属性名称是否在排除属性值中
                if(!exclField.contains(name)){
                    if (f.get(object) != null) { //判断字段是否为空，并且对象属性中的基本都会转为对象类型来判断
                        flag = false;
                        break;
                    }
                }
            } catch (IllegalArgumentException e) {
                return flag;
            } catch (IllegalAccessException e) {
                return flag;
            }
        }

        return flag;
    }
}
